package org.example.wumeng.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.example.wumeng.pojo.Prescription;

import java.util.List;

@Mapper
public interface T_prescriptionMapper {

    /**
     * 分页查询方剂列表
     */
    List<Prescription> selectWithCondition(@Param("name") String name,
                                           @Param("category") String category,
                                           @Param("source") String source,
                                           @Param("offset") int offset,
                                           @Param("size") int size);

    /**
     * 统计查询条件下的总数
     */
    Long countWithCondition(@Param("name") String name,
                            @Param("category") String category,
                            @Param("source") String source);

    /**
     * 根据ID查询方剂
     */
    Prescription selectById(Long id);

    /**
     * 插入方剂
     */
    int insert(Prescription prescription);

    /**
     * 更新方剂
     */
    int updateById(Prescription prescription);

    /**
     * 删除方剂
     */
    int deleteById(Long id);

    /**
     * 按分类查询方剂
     */
    List<Prescription> selectByCategory(@Param("category") String category,
                                       @Param("offset") int offset,
                                       @Param("size") int size);

    /**
     * 统计分类下的方剂数量
     */
    int countByCategory(@Param("category") String category);

    /**
     * 获取分类统计
     */
    List<java.util.Map<String, Object>> getCategoryStatistics();
}